#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
char** fizzBuzz(int n, int* returnSize) {
    *returnSize = n;
    char** answer = (char**)malloc(sizeof(char*) * n);
    for (int i = 1; i <= n; i++)
    {
        answer[i - 1] = (char*)malloc(sizeof(char) * 9);
        if (i % 3 == 0 && i % 5 == 0)
        {
            //memcpy(answer[i-1],"FizzBuzz",8);
            strcpy(answer[i - 1], "FizzBuzz");
        }
        else if (i % 3 == 0)
        {
            //memcpy(answer[i-1],"Fizz",4);
            strcpy(answer[i - 1], "Fizz");
        }
        else if (i % 5 == 0)
        {
            //memcpy(answer[i-1],"Buzz",4);
            strcpy(answer[i - 1], "Buzz");
        }
        else
        {
            //memcpy(answer[i-1],i+'0',1);
            //strcpy(answer[i-1],(char*)(i+'0'));
            sprintf(answer[i - 1], "%d", i);
        }
    }
    return answer;
    // char *str=(char*)malloc(sizeof(char)*10000);
    // int j=0;
    // for(int i=0;i<n;i++)
    // {
    //     if(n%3==0&&n%5==0)
    //     {
    //         memcpy(str+j,"FizzBuzz",8);
    //         j+=8;
    //     }
    //     else if(n%3==0)
    //     {
    //         memcpy(str+j,"Fizz",4);
    //         j+=4;
    //     }
    //     else if(n%5==0)
    //     {
    //         memcpy(str+j,"Buzz",4);
    //         j+=4;
    //     }
    //     else
    //     {
    //         memcpy(str+j,n+'0',1);
    //         j=j+1;
    //     }
    // }
    // *returnSize=j;
    // return *str;
}

int main()
{
	return 0;
}